package com.example.demo.demos.web;

import cn.hutool.core.util.RandomUtil;
import com.deepoove.poi.XWPFTemplate;
import com.deepoove.poi.config.Configure;
import com.deepoove.poi.data.FilePictureRenderData;
import com.deepoove.poi.data.NumberingFormat;
import com.deepoove.poi.data.NumberingRenderData;
import com.deepoove.poi.data.Numberings;
import com.deepoove.poi.policy.TableRenderPolicy;
import com.deepoove.poi.xwpf.NumFormat;

import java.io.IOException;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @author Administrator
 * @describe: TODO
 * @date 2025/2/19
 */
public class MyDemo {

    public static void main(String[] args) {

        try {
            /*文本*/
            Map<String, Object> map = new HashMap<>();
            map.put("no1", RandomUtil.randomString(5));
            map.put("no2", RandomUtil.randomString(5));
            map.put("no3", "广东XXX新材料有限公司");
            map.put("no4", "定期检测");
            map.put("no5", "2025年 02月17日");
            map.put("no6", "佛山市南海区瀚天科技城B1区3号楼809-2-3-4、801");
            map.put("no7", "432888");
            map.put("no8", "8605-928374231");
            map.put("no9", "小王");
            map.put("no10", "校长");
            map.put("no11", "校长");
            map.put("no12", "校长");
            map.put("no13", "校长");
            map.put("no14", "校长");
            map.put("no15", "校长");
            map.put("no16", "校长");
            map.put("no17", "法律、法规、规章及规范性文件");


            //列表集合
            List<String> varList = Arrays.asList(
                    "《中华人民共和国职业病防治法》，中华人民共和国主席令〔2002〕第60号，中华人民共和国主席令〔2018〕第24号修正；",
                    "《工作场所职业卫生管理规定》，中华人民共和国国家卫生健康委员会令第5号，2021年2月1日施行；",
                    "《用人单位职业健康监护监督管理办法》，国家安全生产监督管理总局令第49号，2012年6月1日施行；",
                    "《用人单位职业病危害告知与警示标识管理规范》安监总厅安健〔2014〕111号；",
                    "国家安全监管总局办公厅关于印发《用人单位职业病危害因素定期检测管理规范》的通知，安监总厅安健〔2015〕16号",
                    "国家安全监管总局办公厅关于印发《职业卫生技术服务机构检测工作规范》的通知，安监总厅安健〔2016〕9号；",
                    "广东省职业卫生技术质量控制中心关于印发《广东省职业病危害因素定期检测质量控制技术规范》的通知，粤职防质控〔2022〕9号；",
                    "《职业病危害因素分类目录》国卫疾控发〔2015〕92号；",
                    "《职业病分类和目录》国卫疾控发〔2013〕48号；",
                    "《建设项目职业病危害风险分类管理目录》国卫办职健发〔2021〕5号；",
                    "《广东省卫生健康委办公室关于进一步加强工作场所职业卫生管理规范职业病诊断与鉴定管理工作的通知》广东省卫生健康委员会粤卫办职健函〔2021〕6号。"
            );

            //自定义序号的样式为  a)  b)  c)
            NumberingFormat.Builder builder = NumberingFormat.
                    builder("(%{0})") //%{0}) 可以指定自己需要的样式
                    .withNumFmt(NumFormat.DECIMAL)
                    ;  //小写字母
            NumberingFormat numberingFormat = builder.build(3);
            Numberings.NumberingBuilder of = Numberings.of(numberingFormat);//a)  b)  c)
            //列表 数据赋值
            varList.forEach(of::addItem);
            NumberingRenderData numberingRenderData = of.create();
//            map.put("no18",numberingRenderData);


            map.put("no19","（1）《中华人民共和国职业病防治法》，中华人民共和国主席令〔2002〕第60号，中华人民共和国主席令〔2018〕第24号修正；\n" +
                    "（2）《工作场所职业卫生管理规定》，中华人民共和国国家卫生健康委员会令第5号，2021年2月1日施行；\n" +
                    "（3）《用人单位职业健康监护监督管理办法》，国家安全生产监督管理总局令第49号，2012年6月1日施行；\n" +
                    "（4）《用人单位职业病危害告知与警示标识管理规范》安监总厅安健〔2014〕111号；\n" +
                    "（5）国家安全监管总局办公厅关于印发《用人单位职业病危害因素定期检测管理规范》的通知，安监总厅安健〔2015〕16号；\n" +
                    "（6）国家安全监管总局办公厅关于印发《职业卫生技术服务机构检测工作规范》的通知，安监总厅安健〔2016〕9号；\n" +
                    "（7）广东省职业卫生技术质量控制中心关于印发《广东省职业病危害因素定期检测质量控制技术规范》的通知，粤职防质控〔2022〕9号；\n" +
                    "（8）《职业病危害因素分类目录》国卫疾控发〔2015〕92号；\n" +
                    "（9）《职业病分类和目录》国卫疾控发〔2013〕48号；\n" +
                    "（10）《建设项目职业病危害风险分类管理目录》国卫办职健发〔2021〕5号；\n" +
                    "《广东省卫生健康委办公室关于进一步加强工作场所职业卫生管理规范职业病诊断与鉴定管理工作的通知》广东省卫生健康委员会粤卫办职健函〔2021〕6号。");
            map.put("no20", "技术标准");
            map.put("no21", "（1）《工作场所空气中有害物质监测的采样规范》GBZ 159-2004\n" +
                    "（2）《工作场所有害因素职业接触限值 第1部分：化学有害因素》GBZ 2.1-2019\n" +
                    "（3）《关于发布<工作场所有害因素职业接触限值 第1部分：化学有害因素>（GBZ 2.1—2019）第1号修改单的通告》国卫通〔2022〕14号\n" +
                    "（4）《工作场所有害因素职业接触限值 第2部分：物理因素》GBZ 2.2-2007\n" +
                    "（5）《工作场所空气有毒物质测定 第132部分：甲苯二异氰酸酯、二苯基甲烷二异氰酸酯和异佛尔酮二异氰酸酯》GBZ/T 300.132-2017\n" +
                    "（6）《工作场所空气中粉尘测定 第1部分：总粉尘浓度》GBZ/T 192.1-2007\n" +
                    "（7）《工作场所空气有毒物质测定 无机含氮化合物》GBZ/T 160.29-2004\n" +
                    "（8）《工作场所空气有毒物质测定 第17部分：锰及其化合物》GBZ/T 300.17-2017\n" +
                    "（9）《工作场所空气有毒物质测定 第48部分：臭氧和过氧化氢》GBZ/T 300.48-2017\n" +
                    "（10）《工作场所空气有毒物质测定 第60部分：戊烷、己烷、庚烷、辛烷和壬烷》GBZ/T 300.60-2017\n" +
                    "（11）《工作场所空气有毒物质测定 第73部分：氯甲烷、二氯甲烷、三氯甲烷和四氯化碳》GBZ/T 300.73-2017\n" +
                    "（12）《工作场所空气有毒物质测定 第112部分：甲酸和乙酸》GBZ/T 300.112-2017\n" +
                    "（13）《工作场所物理因素测量 第6部分：紫外辐射》GBZ/T 189.6-2007\n" +
                    "（14）《工作场所物理因素测量 第8部分：噪声》GBZ/T 189.8-2007\n" +
                    "（15）《工作场所物理因素测量 第9部分：手传振动》GBZ/T 189.9-2007");

            map.put("no22", "其他技术资料");
            map.put("no23", "用人单位调查记录等相关资料。");
            map.put("no24", "本检测与评价报告按广东达康安全技术咨询有限公司要求进行质量控制，质量控制体系框图见图1。质量控制体系主要内容为：\n" +
                    "（1）检测评价人员：具有相关专业的技术职称和工作经验，持证上岗。\n" +
                    "（2）检测评价过程：依从国家颁布的规范，实施检测方案内审、原始记录复核、计算结果复核、检测报告内审等质控措施。\n" +
                    "（3）检测评价依据：我国现行的法律、法规、规章、标准和规范。\n" +
                    "（4）检测评价方法：采用相关标准或规范，检测仪器经计量检定。\n" +
                    "检测评价结论：做到客观、真实。");


            map.put("流程图", new FilePictureRenderData(454, (int) (583 / 1.1), "3.png"));
            map.put("检测范围", "该用人单位为了解工作场所职业病危害因素暴露水平，完善职业卫生管理工作，于20**年**月**日与广东达康安全技术咨询有限公司签订《技术服务合同》（合同编号：DKJC*****），委托本公司对其工作场所（生产车间）进行职业病危害因素定期检测。");
            map.put("用人单位", "武汉达正科技有限公司");
            map.put("统一社会信用代码", "91420115MAE4GMY77J");
            map.put("单位注册地址", "湖北省武汉市江夏区大桥新区办事处大桥村联投广场住宅区19栋2单元24层4室");
            map.put("工作场所地址", "湖北省武汉市江夏区大桥新区办事处大桥村联投广场住宅区19栋2单元24层4室");
            map.put("所属行业", "软件开发");
            map.put("经济类型", "有限责任公司（自然人投资或控股）");
            map.put("企业规模", "微型企业");
            map.put("投产时间", "2024-11-06");
            map.put("法人", "张艳群");
            map.put("职业卫生", "张艳群");
            map.put("在册职工总人数", 10);
            map.put("劳务派遣工数量", 0);
            map.put("生产工艺", "根据企业提供的相关资料及现场调查，该企业主要生产工艺流程如下：\n" +
                    "原料→开料→弯管→焊接→打磨→发泡→去批锋→修补→包装\n" +
                    "原料：来料。\n" +
                    "开料：工人操作带锯、锯管机等对木料和五金进行开料，作业过程中产生噪声、粉尘。\n" +
                    "弯管：工人操作弯管机对工件进行弯管加工，作业时接触噪声。\n" +
                    "焊接：工人操作焊接机对工件进行焊接，作业时产生噪声、紫外辐射、电焊烟尘、臭氧、氮氧化物、锰及其无机化合物。\n" +
                    "打磨：工人手持打磨机对焊接后五金件表面进行打磨，作业时接触噪声、粉尘、手传振动。\n" +
                    "发泡：工人操作发泡机将黑料、白料、二氯甲烷进行混合发泡，发泡时产生噪声、化学有害物质。\n" +
                    "去批锋：工人手工使用小刀去除披锋和毛刺，受周围设备影响接触噪声。\n" +
                    "修补：工人使用黄胶对发泡产品进行粘贴修补，作业过程中产生噪声、化学有害物质。\n" +
                    "包装：工人手工将产品进行包装，作业时产生噪声。");

            Configure config = Configure.builder()
                    .bind("岗位定员", new TableRenderPolicy())
                    .build();
            GwydTable gwydTable = new GwydTable();
            gwydTable.createGwydTable(map);
            XWPFTemplate.compile("1.docx", config).render(map).writeToFile("1666.docx");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

}
